#pragma once

class Noncopyable{
public:
    //禁止拷贝构造函数和赋值操作符
    Noncopyable(const Noncopyable&) = delete;
    Noncopyable& operator=(const Noncopyable&) = delete;
protected:
    //这里将构造和析构设定为protected的目的是允许子类执行构造析构，但是不能直接创建Noncopyable对象
    Noncopyable() = default;
    ~Noncopyable() = default;
};